package com.pokermind.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 牌面结构分析DTO
 * 
 * @author PokerMind Team
 */
public class BoardTexture {
    
    private Map<String, Integer> suits;
    
    private List<String> ranks;
    
    @JsonProperty("is_paired")
    private Boolean isPaired;
    
    @JsonProperty("is_two_tone")
    private Boolean isTwoTone;
    
    @JsonProperty("is_rainbow")
    private Boolean isRainbow;
    
    @JsonProperty("straight_draws")
    private Integer straightDraws;
    
    @JsonProperty("flush_draws")
    private Integer flushDraws;
    
    // 默认构造函数
    public BoardTexture() {
        this.suits = new HashMap<>();
        this.suits.put("hearts", 0);
        this.suits.put("diamonds", 0);
        this.suits.put("clubs", 0);
        this.suits.put("spades", 0);
        
        this.isPaired = false;
        this.isTwoTone = false;
        this.isRainbow = false;
        this.straightDraws = 0;
        this.flushDraws = 0;
    }
    
    // Getters and Setters
    public Map<String, Integer> getSuits() {
        return suits;
    }
    
    public void setSuits(Map<String, Integer> suits) {
        this.suits = suits;
    }
    
    public List<String> getRanks() {
        return ranks;
    }
    
    public void setRanks(List<String> ranks) {
        this.ranks = ranks;
    }
    
    public Boolean getIsPaired() {
        return isPaired;
    }
    
    public void setIsPaired(Boolean isPaired) {
        this.isPaired = isPaired;
    }
    
    public Boolean getIsTwoTone() {
        return isTwoTone;
    }
    
    public void setIsTwoTone(Boolean isTwoTone) {
        this.isTwoTone = isTwoTone;
    }
    
    public Boolean getIsRainbow() {
        return isRainbow;
    }
    
    public void setIsRainbow(Boolean isRainbow) {
        this.isRainbow = isRainbow;
    }
    
    public Integer getStraightDraws() {
        return straightDraws;
    }
    
    public void setStraightDraws(Integer straightDraws) {
        this.straightDraws = straightDraws;
    }
    
    public Integer getFlushDraws() {
        return flushDraws;
    }
    
    public void setFlushDraws(Integer flushDraws) {
        this.flushDraws = flushDraws;
    }
}